﻿Imports VN.INS.BL.BC
Imports System.Data
Imports System.IO

Partial Class incidencias_f_a5_monitoreo
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If (Not (Page.IsPostBack)) Then

            Dim dtUsuarios As DataTable = New DataTable
            'Capturamos parametros
            ViewState("VSusuario") = Session("user_id").ToString
            ViewState("VSperfil") = Session("perfil").ToString
            ViewState("VSnombre") = Session("persona").ToString
            ViewState("VSpper") = Session("PPER").ToString

            ListaMesFichaMonitoreo()

            If ViewState("VSperfil") = "AD" Or ViewState("VSperfil") = "RE" Then    'Si es Administrador                
                CargarGrillaAD()
                PperMonitor()
                monitoreadores()
            Else   'Si no es admin.

                monitoreadores()
                PperMonitor()

                'By Tigrito: Commented 27/05/2013
                'CargarGrillaMon(ViewState("VSusuario"), Session("Año"))
                'CargarGrillaMonDoc(ViewState("VSusuario"), Session("Año"))

                CargarGrillaMon(ViewState("VSnombre"), ddl_periodo.SelectedValue.ToString, Session("Año"))
                CargarGrillaMonDoc(ViewState("VSnombre"), ddl_periodo.SelectedValue.ToString, Session("Año"))
                ddl_ppermo.SelectedValue = ViewState("VSpper")
                ddl_Monitoreador.SelectedValue = ViewState("VSnombre")
                ddl_ppermo.Enabled = False
                ddl_Monitoreador.Enabled = False
            End If
        End If

        'By Tigrito (20/08/2013): esto lanzará un pop up de confirmación... si se selecciona Ok... entonces el programa continua en el evento click de btn_Reactivar_Formato_02_03
        btn_Reactivar_Formato_02_03.Attributes.Add("onClick", "return confirm('Está seguro que desea Reactivar este formato...?. Sí es así haga click en Ok');")
    End Sub

    'Carga el combo periodo
    Public Sub ListaMesFichaMonitoreo()
        Dim objgeneralbc As GeneralBC = New GeneralBC
        Dim dtMes As DataTable
        Dim persona As String
        If Session("Perfil") = "AD" Or Session("Perfil") = "RE" Then
            persona = ""
        Else
            persona = Session("Persona").ToString()
        End If

        dtMes = objgeneralbc.ListaMesFichaMonitoreo(persona, "", Session("Año"))
        ddl_periodo.DataSource = dtMes
        ddl_periodo.DataTextField = "DESCRIPCION"
        ddl_periodo.DataValueField = "PERIODO"
        ddl_periodo.DataBind()
        ddl_periodo.SelectedIndex = dtMes.Rows.Count - 1

        'By Tigrito(21/06/2013)
        'Dim periodo As String
        'Dim objgeneralbc_Aux As GeneralBC = New GeneralBC
        'Verificamos si el periodo de llenado de la ficha de Monitoreo está activo
        'periodo = objgeneralbc_Aux.Periodo_Activo_Ficha_Monitoreo(ddl_periodo.SelectedValue) 'Este método devuelve el periodo del llenado de la ficha Monitoreo

        'By Tigrito (21/06/2013): Seteado temporalmente de emergencia upsss 

        'ddl_periodo.SelectedValue = "201307"
    End Sub

    'cargamos todos los POAs con pt
    Public Sub CargarGrillaAD()
        Dim objMONITOREOBC As MONITOREOBC
        Dim objData As DataTable
        objMONITOREOBC = New MONITOREOBC
        objData = objMONITOREOBC.filtrar_asig_admin(ddl_periodo.SelectedValue.ToString, Session("año"))
        gv_impresion.DataSource = objData
        gv_impresion.DataBind()
        gv_doc.DataSource = objData
        gv_doc.DataBind()
        'gv_impresion.DataSource = objData
        DOC_2.DataSource = objData
        DOC_2.DataBind()

        btn_Reactivar_Formato_02_03.Visible = True

    End Sub

    'cargamos los POAs con pt para el monitoreador
    Public Sub CargarGrillaMon(ByVal usuario As String, ByVal strPeriodo As String, ByVal anhio As String)
        Dim objMONITOREOBC As MONITOREOBC
        Dim objData As DataTable
        objMONITOREOBC = New MONITOREOBC
        'By Tigrito: Commeted 27/05/2013
        'objData = objMONITOREOBC.filtrar_asig_monitor("PER-" + usuario.Substring(4), ddl_periodo.SelectedValue.ToString, Session("Año"))
        objData = objMONITOREOBC.filtrar_asig_monitor("PER-" + usuario.Substring(4), strPeriodo, Session("Año"))
        gv_impresion.DataSource = objData
        gv_impresion.DataBind()

        Dim Mensajito As String
        Mensajito = ""

        Select Case Session("Perfil")
            Case "AD"
                Mensajito = "<br/>No hay proyectos/actividades en esta lista, puesto que no hay planes de trabajo aprobados aún en el mes correspondiente"
                btn_Reactivar_Formato_02_03.Visible = True
            Case "RE"
                Mensajito = "<br/>No hay proyectos/actividades en esta lista, puesto que no hay planes de trabajo aprobados aún en el mes correspondiente"
                btn_Reactivar_Formato_02_03.Visible = False

            Case "MO"
                Mensajito = "<br/>Para que el Monitoreador pueda ingresar la ficha de monitoreo (Formato 02: avance físico y financiero) de sus proyectos/ actividades <br/>primero debe estar aprobado (por el jefe inmediato) el plan de trabajo del mes correspondiente."
                btn_Reactivar_Formato_02_03.Visible = False
            Case "EP"
                Mensajito = "<br/>Para que el Monitoreador pueda ingresar la ficha de monitoreo (Formato 02: avance físico y financiero) de sus proy/act <br/>primero debe estar aprobado (por el jefe inmediato) el plan de trabajo del mes correspondiente<br/> En esta lista deben de aparecer los proyectos/actividades de cada monitoreador "
                btn_Reactivar_Formato_02_03.Visible = True
            Case Else
                Mensajito = "<br/>Para que el Monitoreador pueda ingresar la ficha de monitoreo (Formato 02: avance físico y financiero) de sus proy/act <br/>primero debe estar aprobado (por el jefe inmediato) el plan de trabajo del mes correspondiente."
                btn_Reactivar_Formato_02_03.Visible = False
        End Select

        If gv_impresion.Rows.Count = 0 Then
            lblResultadoQuery.ForeColor = Drawing.Color.Red
            lblResultadoQuery.Text = Mensajito
        Else
            lblResultadoQuery.Enabled = False
        End If



    End Sub

    'Cargamos los POAs con pt para el monitoreador(oculto)
    Public Sub CargarGrillaMonDoc(ByVal usuario As String, ByVal strPeriodo As String, ByVal anhio As String)
        Dim objMONITOREOBC As MONITOREOBC
        Dim objData As DataTable
        objMONITOREOBC = New MONITOREOBC
        'By Tigrito: Commeted 27/05/2013
        'objData = objMONITOREOBC.filtrar_asig_monitor("PER-" + usuario.Substring(4), ddl_periodo.SelectedValue.ToString, Session("Año"))
        objData = objMONITOREOBC.filtrar_asig_monitor("PER-" + usuario.Substring(4), strPeriodo, Session("Año"))
        gv_doc.DataSource = objData
        gv_doc.DataBind()
        DOC_2.DataSource = objData
        DOC_2.DataBind()
    End Sub

    Public Sub monitoreadores()
        Dim objMONITOREOBC As MONITOREOBC
        Dim objData As DataTable
        objMONITOREOBC = New MONITOREOBC
        objData = objMONITOREOBC.monitoreadores()
        Dim drusuariorow As DataRow = objData.NewRow()
        drusuariorow("MONITOREADOR") = "--Seleccione--"
        drusuariorow("PERSONA") = "all"
        objData.Rows.Add(drusuariorow)
        ddl_Monitoreador.DataSource = objData
        ddl_Monitoreador.DataTextField = "MONITOREADOR"
        ddl_Monitoreador.DataValueField = "PERSONA"
        ddl_Monitoreador.DataBind()
        ddl_Monitoreador.SelectedValue = "all"
    End Sub

    Public Sub ProyectosMonitor(ByVal usuario As String)
        Dim objMONITOREOBC As MONITOREOBC
        Dim objData As DataTable
        objMONITOREOBC = New MONITOREOBC
        objData = objMONITOREOBC.proyectosmonitor(usuario)
        Dim drusuariorow As DataRow = objData.NewRow()
        drusuariorow("NOMBRE") = "--Seleccione--"
        drusuariorow("POA") = "all"
        objData.Rows.Add(drusuariorow)
        ddl_Monitoreador.DataSource = objData
        ddl_Monitoreador.DataTextField = "NOMBRE"
        ddl_Monitoreador.DataValueField = "POA"
        ddl_Monitoreador.DataBind()
        ddl_Monitoreador.SelectedValue = "all"
    End Sub

    Public Sub PperMonitor()
        Dim objMonitorBC As MONITOREOBC = New MONITOREOBC
        Dim dtPPER As DataTable
        dtPPER = objMonitorBC.ppermonitor()
        Dim drPPERrow As DataRow = dtPPER.NewRow()
        drPPERrow("ABREVIATURA") = "--Seleccione--"
        drPPERrow("PPER") = "all"
        dtPPER.Rows.Add(drPPERrow)

        ddl_ppermo.DataSource = dtPPER
        ddl_ppermo.DataTextField = "ABREVIATURA"
        ddl_ppermo.DataValueField = "PPER"
        ddl_ppermo.DataBind()
        ddl_ppermo.SelectedValue = "all"
    End Sub

    Public Sub ppersona()
        Dim objMonitorBC As MONITOREOBC = New MONITOREOBC
        Dim dtPersona As DataTable
        dtPersona = objMonitorBC.ppermonitor()

        Dim drPPERrow As DataRow = dtPersona.NewRow()
        drPPERrow("DESCRIPCION") = "--Seleccione--"
        drPPERrow("PPER") = "all"
        dtPersona.Rows.Add(drPPERrow)

        ddl_ppermo.DataSource = dtPersona
        ddl_ppermo.DataTextField = "DESCRIPCION"
        ddl_ppermo.DataValueField = "PPER"
        ddl_ppermo.DataBind()
        ddl_ppermo.SelectedValue = "all"
    End Sub

    Public Sub tipoProyectoActividad()
        Dim objMonitorBC As MONITOREOBC = New MONITOREOBC
        Dim dttip As DataTable
        dttip = objMonitorBC.ppermonitor()

        Dim drttiprow As DataRow = dttip.NewRow()
        drttiprow("DESCRIPCION") = "--Seleccione--"
        drttiprow("TIPO_PROYECTO_ACTIVIDAD") = "all"
        dttip.Rows.Add(drttiprow)

        ddl_Monitoreador.DataSource = dttip
        ddl_Monitoreador.DataTextField = "DESCRIPCION"
        ddl_Monitoreador.DataValueField = "TIPO_PROYECTO_ACTIVIDAD"
        ddl_Monitoreador.DataBind()
        ddl_Monitoreador.SelectedValue = "all"
    End Sub

    'busqueda como administrador
    Public Sub buscarGrillaAdmin(ByVal strMonitoreador As String, ByVal strNombre As String, ByVal strPPER As String, ByVal anhio As String)
        Dim objMonitorBC As MONITOREOBC = New MONITOREOBC
        Dim objData As DataTable
        objData = objMonitorBC.buscarGrillaAdmin(strMonitoreador, strNombre, strPPER, ddl_periodo.SelectedValue.ToString, Session("Año"))
        gv_impresion.DataSource = objData
        gv_impresion.DataBind()
        gv_doc.DataSource = objData
        gv_doc.DataBind()
        DOC_2.DataSource = objData
        DOC_2.DataBind()
    End Sub

    'busqueda
    Public Sub buscarGrilla(ByVal strMonitoreador As String, ByVal strNombre As String, ByVal strPPER As String, ByVal anhio As String)
        Dim objMonitorBC As MONITOREOBC = New MONITOREOBC
        Dim objData As DataTable
        objData = objMonitorBC.buscarGrilla(strMonitoreador, strNombre, strPPER, ddl_periodo.SelectedValue.ToString, Session("Año"))
        gv_impresion.DataSource = objData
        gv_impresion.DataBind()
        gv_doc.DataSource = objData
        gv_doc.DataBind()
        DOC_2.DataSource = objData
        DOC_2.DataBind()
    End Sub

    Protected Sub gv_impresion_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gv_impresion.RowDataBound

        If e.Row.RowIndex >= 0 Then

            'Dim htxtEstadoReprogAuxi As HiddenField = CType(gv_impresion.SelectedRow.FindControl("EstadoReprog"), HiddenField)
            'If Not htxtEstadoReprogAuxi Is Nothing Then
            '    ViewState("EstadoReprogAuxi") = htxtEstadoReprogAuxi.Value.ToString
            'End If


            If e.Row.Cells(5).Text = "VACIO" Then 'Para el avance físico
                e.Row.Cells(5).Text = "FALTA INGRESAR"
                e.Row.Cells(5).BackColor = Drawing.Color.LightPink
                e.Row.Cells(5).ForeColor = Drawing.Color.Purple
                'e.Row.Cells(8).ForeColor = Drawing.Color.FromName("#9c2d75")
            End If
            If e.Row.Cells(6).Text = "VACIO" Then 'Para el avance financiero
                e.Row.Cells(6).Text = "FALTA INGRESAR"
                e.Row.Cells(6).BackColor = Drawing.Color.LightPink
                e.Row.Cells(6).ForeColor = Drawing.Color.Purple
                'e.Row.Cells(8).ForeColor = Drawing.Color.FromName("#9c2d75")
            End If

            If e.Row.Cells(5).Text = "INICIADO" Then 'Para el estado del avance físico
                e.Row.Cells(5).BackColor = Drawing.Color.Gray
                e.Row.Cells(5).ForeColor = Drawing.Color.White
                'e.Row.Cells(8).ForeColor = Drawing.Color.FromName("#9c2d75")

            End If
            If e.Row.Cells(6).Text = "INICIADO" Then 'Para el estado del avance financiero
                e.Row.Cells(6).BackColor = Drawing.Color.Gray
                e.Row.Cells(6).ForeColor = Drawing.Color.White
                'e.Row.Cells(8).ForeColor = Drawing.Color.FromName("#9c2d75")
            End If

            If e.Row.Cells(14).Text = "PROCESO REPROG." Then
                e.Row.Cells(5).Text = "PROCESO REPROG."
                e.Row.Cells(5).BackColor = Drawing.Color.Black
                e.Row.Cells(5).ForeColor = Drawing.Color.Orange

                e.Row.Cells(6).Text = "PROCESO REPROG."
                e.Row.Cells(6).BackColor = Drawing.Color.Black
                e.Row.Cells(6).ForeColor = Drawing.Color.Orange
            End If

            If e.Row.Cells(15).Text = "1" Then
                e.Row.Cells(5).Text = "PROY/ACT CONCLUIDO"
                e.Row.Cells(5).BackColor = Drawing.Color.Black
                e.Row.Cells(5).ForeColor = Drawing.Color.GreenYellow

                e.Row.Cells(6).Text = "PROY/ACT CONCLUIDO"
                e.Row.Cells(6).BackColor = Drawing.Color.Black
                e.Row.Cells(6).ForeColor = Drawing.Color.GreenYellow
            End If

        End If

        ' FORMATEA ROWS
        If e.Row.RowType = DataControlRowType.DataRow Then
            ' ASIGNA EVENTOS
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes("OnClick") = Page.ClientScript.GetPostBackClientHyperlink(Me.gv_impresion, "Select$" + e.Row.RowIndex.ToString)
        End If
    End Sub

    Protected Sub gv_impresion_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gv_impresion.SelectedIndexChanged
        'Capturamos POA y Nombre
        Dim htxtPOA As HiddenField = CType(gv_impresion.SelectedRow.FindControl("POA"), HiddenField)
        Dim htxtNombre As HiddenField = CType(gv_impresion.SelectedRow.FindControl("Nombre"), HiddenField)
        Dim htxtNombreEjecutor As HiddenField = CType(gv_impresion.SelectedRow.FindControl("NombreEjecutor"), HiddenField)
        Dim htxtNombreEspecialista As HiddenField = CType(gv_impresion.SelectedRow.FindControl("NombreEspecialista"), HiddenField)
        Dim htxtNombreMonitoreador As HiddenField = CType(gv_impresion.SelectedRow.FindControl("NombreMonitoreador"), HiddenField)

        Dim htxtEstadoFisico As HiddenField = CType(gv_impresion.SelectedRow.FindControl("EstadoFisico"), HiddenField)
        Dim htxtEstadoFinanciero As HiddenField = CType(gv_impresion.SelectedRow.FindControl("EstadoFinanciero"), HiddenField)

        Dim htxtVersionPoaVigente As HiddenField = CType(gv_impresion.SelectedRow.FindControl("VersionPoaVigente"), HiddenField)
        Dim htxtVersionPoaAvanceFis As HiddenField = CType(gv_impresion.SelectedRow.FindControl("VersionPoaAvanceFis"), HiddenField)
        Dim htxtVersionPoaAvanceFin As HiddenField = CType(gv_impresion.SelectedRow.FindControl("VersionPoaAvanceFin"), HiddenField)

        Dim htxtEstadoReprog As HiddenField = CType(gv_impresion.SelectedRow.FindControl("EstadoReprog"), HiddenField)
        Dim htxtEstadoProyActPeriodoLista As HiddenField = CType(gv_impresion.SelectedRow.FindControl("EstadoProyActPeriodoLista"), HiddenField)

        'By Tigrito(23/06/2013): Obtenemos estos valores del dropdownlist del periodo
        Dim htxtCodPeriodo As String = ddl_periodo.SelectedValue.ToString
        Dim htxtNombrePeriodo As String = ddl_periodo.SelectedItem.Text

        'By Tigrito(14/06/2013): Aquí recuperamos los campos ocultos
        Try
            If Not htxtPOA Is Nothing Then
                ViewState("POA") = htxtPOA.Value.ToString
            End If
            If Not htxtNombre Is Nothing Then
                ViewState("Nombre") = htxtNombre.Value.ToString
            End If
            If Not htxtNombreEjecutor Is Nothing Then
                ViewState("NombreEjecutor") = htxtNombreEjecutor.Value.ToString
            End If
            If Not htxtNombreEspecialista Is Nothing Then
                ViewState("NombreEspecialista") = htxtNombreEspecialista.Value.ToString
            End If
            If Not htxtNombreMonitoreador Is Nothing Then
                ViewState("NombreMonitoreador") = htxtNombreMonitoreador.Value.ToString
            End If

            'By Tigrito (16/08/2013): Version del POA Vigente
            If Not htxtVersionPoaVigente Is Nothing Then
                ViewState("VersionPoaVigente") = htxtVersionPoaVigente.Value.ToString
            End If
            'By Tigrito (16/08/2013): Version del POA que se usa en el Avance Físico
            If Not htxtVersionPoaVigente Is Nothing Then
                ViewState("VersionPoaAvanceFis") = htxtVersionPoaAvanceFis.Value.ToString
            End If
            'By Tigrito (16/08/2013): Version del POA que se usa en el Avance Financiero
            If Not htxtVersionPoaVigente Is Nothing Then
                ViewState("VersionPoaAvanceFin") = htxtVersionPoaAvanceFin.Value.ToString
            End If

            'By Tigrito (21/08/2013): Indica si el POA esta siendo Reprogramdo o Reformulado
            If Not htxtEstadoReprog Is Nothing Then
                ViewState("EstadoReprog") = htxtEstadoReprog.Value.ToString
            End If

            'By Tigrito (21/08/2013): Indicador de sí el periodo de la lista está dentro del rango de vida del proyecto
            If Not htxtEstadoProyActPeriodoLista Is Nothing Then
                ViewState("EstadoProyActPeriodoLista") = htxtEstadoProyActPeriodoLista.Value.ToString
            End If

            If Not htxtEstadoFisico Is Nothing Then
                ViewState("EstadoFisico") = htxtEstadoFisico.Value.ToString
            End If
            If Not htxtEstadoFinanciero Is Nothing Then
                ViewState("EstadoFinanciero") = htxtEstadoFinanciero.Value.ToString
            End If



            If Not htxtCodPeriodo Is Nothing Then
                ViewState("CodPeriodo") = htxtCodPeriodo
            End If

            If Not htxtNombrePeriodo Is Nothing Then
                ViewState("NombrePeriodo") = htxtNombrePeriodo
            End If

        Catch ex As Exception
            Throw ex
        End Try

    End Sub


    'Ingresar el Avance Físico
    Protected Sub IngresarFisico_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ibn_IngresarAFisico.Click
        If gv_impresion.SelectedIndex = -1 Then 'NO se selecciono ningun registro
            alerta.Mostrar_Alerta("Error", "Debe seleccionar un Registro")
        Else                                    'SI se selecciono algún registro

            If ViewState("EstadoProyActPeriodoLista") = "1" Then
                'El 1 indica que en el periodo de la lista esta fuera del rango de vida del proyecto... 
                'Si el rango de vida es 201306-201308 y el periodo de la lista es 201309... entonces el resultado es 1 
                'Y por lo tanto no hay nada que registar en el periodo de la lista
                alerta.Mostrar_Alerta("Alerta", "Este Proyecto/Actividad se encuentra CONCLUIDO, no haya nada que registrar")
            Else
                If ViewState("EstadoReprog") = "PROCESO REPROG." Then 'En caso el POA este en proceso de Reprogr/Reform
                    alerta.Mostrar_Alerta("Error", "Este POA se encuentra en proceso de <font color ='#FF0000'>REPROGR/ REFORMULACION...</font> <br/> Espere a que se haga la actualización")
                Else
                    Response.Redirect("AvanceFisico.aspx?Param=" + ViewState("POA").ToString & "&Nombre=" & ViewState("Nombre") & "&NombreEjecutor=" & ViewState("NombreEjecutor") & "&NombreEspecialista=" & ViewState("NombreEspecialista") & "&NombreMonitoreador=" & ViewState("NombreMonitoreador") & "&CodPeriodo=" & ViewState("CodPeriodo") & "&NombrePeriodo=" & ViewState("NombrePeriodo") & "&EstadoFisico=" & ViewState("EstadoFisico") & "&VersionPoaVigente=" & ViewState("VersionPoaVigente") & "&VersionPoaAvanceFis=" & ViewState("VersionPoaAvanceFis"), False)

                End If
            End If

        End If

    End Sub

    'Ingresar el Avance Financiero
    Protected Sub IngresarFinanciero_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ibn_IngresarAFinanciero.Click
        If gv_impresion.SelectedIndex = -1 Then 'NO se selecciono ningun registro
            alerta.Mostrar_Alerta("Alerta", "Debe seleccionar un Registro")
        Else                                    'SI se selecciono algún registro


            If ViewState("EstadoProyActPeriodoLista") = "1" Then
                alerta.Mostrar_Alerta("Error", "Este Proyecto/Actividad se encuentra CONCLUIDO, no haya nada que registrar")
            Else
                If ViewState("EstadoReprog") = "PROCESO REPROG." Then 'En caso el POA este en proceso de Reprogr/Reform
                    alerta.Mostrar_Alerta("Error", "Este POA se encuentra en proceso de <font color ='#FF0000'>REPROGR/ REFORMULACION...</font> <br/> Espere a que se haga la actualización")
                Else
                    Response.Redirect("AvanceFinanciero.aspx?Param=" + ViewState("POA").ToString & "&Nombre=" & ViewState("Nombre") & "&NombreEjecutor=" & ViewState("NombreEjecutor") & "&NombreEspecialista=" & ViewState("NombreEspecialista") & "&NombreMonitoreador=" & ViewState("NombreMonitoreador") & "&CodPeriodo=" & ViewState("CodPeriodo") & "&NombrePeriodo=" & ViewState("NombrePeriodo") & "&EstadoFinanciero=" & ViewState("EstadoFinanciero") & "&VersionPoaVigente=" & ViewState("VersionPoaVigente") & "&VersionPoaAvanceFin=" & ViewState("VersionPoaAvanceFin"), False)

                End If
            End If

        End If
    End Sub

    'Reactivar Formato 02 y 03
    Protected Sub ReactivarFormato_02_03_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btn_Reactivar_Formato_02_03.Click
        Dim objgeneralbc As GeneralBC = New GeneralBC
        Dim ResultadoVerificarPeriodoActivo As String

        ResultadoVerificarPeriodoActivo = objgeneralbc.Verificar_Periodo_Activo_General("FICHA_MONITOREO_INGRESO", ViewState("CodPeriodo"))

        If gv_impresion.SelectedIndex = -1 Then 'NO se selecciono ningun registro
            alerta.Mostrar_Alerta("Error", "Debe seleccionar un Registro")
        Else 'SI se selecciono algún registro

            If ViewState("EstadoFisico") = "VACIO" And ViewState("EstadoFinanciero") = "VACIO" Then
                alerta.Mostrar_Alerta("Error", "No hay nada que REACTIVAR, no hay avance ingresado")
            Else
                Dim objMonitorBC As MONITOREOBC = New MONITOREOBC

                If ResultadoVerificarPeriodoActivo = "1" Then
                    objMonitorBC.Reactivar_Formato_02_03(ViewState("POA"), ViewState("CodPeriodo"))
                    alerta.Mostrar_Alerta("Alerta", "Se ha rehabilitado los formatos 02 y 03 de este POA")
                Else
                    If ViewState("VSperfil") = "AD" Then
                        objMonitorBC.Reactivar_Formato_02_03(ViewState("POA"), ViewState("CodPeriodo"))
                        alerta.Mostrar_Alerta("Alerta", "Se ha rehabilitado los formatos 02 y 03 de este POA")
                    Else
                        alerta.Mostrar_Alerta("Alerta", "No puede reactivar el formato de este POA porque el periodo seleccionado ya está CERRADO")
                    End If
                End If

                If ViewState("VSperfil") = "AD" Then    'Si es Administrador                
                    CargarGrillaAD()
                    PperMonitor()
                    monitoreadores()
                Else                                    'Si no es admin.
                    monitoreadores()
                    PperMonitor()

                    CargarGrillaMon(ViewState("VSnombre"), ddl_periodo.SelectedValue.ToString, Session("Año"))
                    CargarGrillaMonDoc(ViewState("VSnombre"), ddl_periodo.SelectedValue.ToString, Session("Año"))
                End If
            End If

        End If
    End Sub


    'Exportar
    Private Sub EXPORTARdoc(ByVal GRILLA As GridView)
        Dim sb As StringBuilder = New StringBuilder()
        Dim sw As StringWriter = New StringWriter(sb)
        Dim htw As HtmlTextWriter = New HtmlTextWriter(sw)
        Dim pagina As Page = New Page
        'CREAR TITULO
        Dim gvtitle As New Table
        Dim titulo1 As New TableCell()
        titulo1.RowSpan = 1
        titulo1.ColumnSpan = 12
        titulo1.Text = "LISTA DE PROYECTOS ASIGNADOS"
        titulo1.Font.Name = "Calibri"
        titulo1.Font.Size = 12
        titulo1.Font.Bold = True
        titulo1.BackColor = Drawing.Color.White
        titulo1.HorizontalAlign = HorizontalAlign.Center
        titulo1.VerticalAlign = VerticalAlign.Middle
        Dim headertitulo1 As New TableRow()
        headertitulo1.Cells.Add(titulo1)
        gvtitle.Rows.AddAt(0, headertitulo1)
        '------------
        Dim form = New HtmlForm
        pagina.EnableEventValidation = False
        pagina.DesignerInitialize()
        pagina.Controls.Add(form)
        form.Controls.Add(gvtitle)
        form.Controls.Add(GRILLA)
        pagina.RenderControl(htw)
        Response.Clear()
        Response.Buffer = True
        Response.ContentType = "application/vnd.ms-excel"
        Response.AddHeader("Content-Disposition", "attachment;filename=Lista_PROYECTOS_ASIGNADOS.xls")
        Response.Charset = "UTF-8"
        Response.ContentEncoding = Encoding.Default
        Response.Write(sb.ToString())
        Response.End()
    End Sub

    Protected Sub exportar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles exportar.Click
        EXPORTARdoc(DOC_2)
    End Sub

    Protected Sub buscar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles buscar.Click
        If ViewState("VSperfil") = "AD" Or ViewState("VSperfil") = "RE" Then    'Si es administrador
            buscarGrillaAdmin(ddl_Monitoreador.SelectedValue.ToString, txt_nombre.Text, ddl_ppermo.SelectedValue.ToString, Session("Año"))
        Else                                    'No es administrador
            If ddl_Monitoreador.SelectedValue.ToString = "all" Then   'Si se selecciono monitoreador
                'buscarGrilla("PER-" + ViewState("VSusuario").Substring(4), txt_nombre.Text, ddl_ppermo.SelectedValue.ToString, Session("Año"))
                buscarGrilla(ViewState("VSnombre"), txt_nombre.Text, ddl_ppermo.SelectedValue.ToString, Session("Año"))
            Else                                                'No se selecciono monitoreador
                buscarGrilla(ddl_Monitoreador.SelectedValue.ToString, txt_nombre.Text, ddl_ppermo.SelectedValue.ToString, Session("Año"))
            End If
        End If
    End Sub


    Protected Sub ddl_ppermo_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddl_ppermo.SelectedIndexChanged
        If ViewState("VSperfil") = "AD" Or ViewState("VSperfil") = "RE" Then    'Si es administrador
            buscarGrillaAdmin(ddl_Monitoreador.SelectedValue.ToString, txt_nombre.Text, ddl_ppermo.SelectedValue.ToString, Session("Año"))
        Else                                    'No es administrador
            If ddl_Monitoreador.SelectedValue.ToString = "all" Then   'Si se selecciono monitoreador
                'buscarGrilla("PER-" + ViewState("VSusuario").Substring(4), txt_nombre.Text, ddl_ppermo.SelectedValue.ToString, Session("Año"))
                CargarGrillaMon(ViewState("VSnombre"), ddl_ppermo.SelectedValue.ToString, Session("Año"))
            Else                                                'No se selecciono monitoreador
                'buscarGrilla(ddl_Monitoreador.SelectedValue.ToString, txt_nombre.Text, ddl_ppermo.SelectedValue.ToString, Session("Año"))
                CargarGrillaMon(ViewState("VSnombre"), ddl_ppermo.SelectedValue.ToString, Session("Año"))
            End If
        End If
    End Sub

    Protected Sub ddl_Monitoreador_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddl_Monitoreador.SelectedIndexChanged
        If ViewState("VSperfil") = "AD" Or ViewState("VSperfil") = "RE" Then    'Si es administrador
            buscarGrillaAdmin(ddl_Monitoreador.SelectedValue.ToString, txt_nombre.Text, ddl_ppermo.SelectedValue.ToString, Session("Año"))
        Else                                    'No es administrador
            If ddl_Monitoreador.SelectedValue.ToString = "all" Then   'Si se selecciono monitoreador
                'buscarGrilla("PER-" + ViewState("VSusuario").Substring(4), txt_nombre.Text, ddl_Monitoreador.SelectedValue.ToString, Session("Año"))
                CargarGrillaMon(ViewState("VSnombre"), ddl_Monitoreador.SelectedValue.ToString, Session("Año"))
            Else                                                'No se selecciono monitoreador
                'buscarGrilla(ddl_Monitoreador.SelectedValue.ToString, txt_nombre.Text, ddl_ppermo.SelectedValue.ToString, Session("Año"))
                CargarGrillaMon(ViewState("VSnombre"), ddl_Monitoreador.SelectedValue.ToString, Session("Año"))
            End If
        End If
    End Sub

    Protected Sub ddl_periodo_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddl_periodo.SelectedIndexChanged
        If ViewState("VSperfil") = "AD" Or ViewState("VSperfil") = "RE" Then    'Si es administrador
            buscarGrillaAdmin(ddl_Monitoreador.SelectedValue.ToString, txt_nombre.Text, ddl_ppermo.SelectedValue.ToString, Session("Año"))
        Else                                    'No es administrador
            If ddl_Monitoreador.SelectedValue.ToString = "all" Then   'Si se selecciono monitoreador
                'buscarGrilla("PER-" + ViewState("VSusuario").Substring(4), txt_nombre.Text, ddl_ppermo.SelectedValue.ToString, Session("Año"))
                CargarGrillaMon(ViewState("VSnombre"), ddl_periodo.SelectedValue.ToString, Session("Año"))
            Else                                                'No se selecciono monitoreador
                'buscarGrilla(ddl_Monitoreador.SelectedValue.ToString, txt_nombre.Text, ddl_ppermo.SelectedValue.ToString, Session("Año"))
                CargarGrillaMon(ViewState("VSnombre"), ddl_periodo.SelectedValue.ToString, Session("Año"))
            End If
        End If
    End Sub

    'Salir
    Protected Sub ibn_salir_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ibn_salir.Click
        Response.Redirect("Inicio.aspx", False)
    End Sub

End Class